from django import template
from django.utils.http import urlencode

register = template.Library()

@register.simple_tag(takes_context=True)
def relative_query_string(context, **kwargs):
    """
    把当前 GET 参数与 kwargs 合并后输出 ?xxx=yy&...
    用于在保留筛选条件的同时，只覆盖/新增指定参数。
    """
    query = context['request'].GET.copy()
    for k, v in kwargs.items():
        query[k] = v
    return ('?' + urlencode(query)) if query else ''